home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr37
/
blt300.zip
/
EDIT.PPS
< prev
next >
Wrap
Text File
|
1995-01-01
|
3KB
|
99 lines
;Text Editor PPE (Saves in file "TEMP.!!!")
STRING x ' Temporary storage for cursor x position
STRING y ' Temporary storage for cursor y position
STRING BEEP ' An ASCII beep
STRING CR ' An ASCII carriage return
STRING DATA
STRING FILE
STRING HOLD
STRING HOME ' ANSI home sequence
STRING CLREOL ' ANSI clear to end of line sequence
STRING key
BOOLEAN EXITFLAG
INTEGER NUMCHR
;***********************************************************************
; Initializations
LET BEEP = CHR(7)
LET CR = CHR(13)
;***********************************************************************
STARTDISP FNS
DELETE PPEPATH()+"TEMP.!!!"
DELETE PPEPATH()+"TEMP.@@@"
FOPEN 1,PPEPATH()+"TEMP.!!!",O_RW,S_DN
FOPEN 2,PPEPATH()+"TEMP.@@@",O_RW,S_DN
CLS
PRINTLN "Enter a Subject for your Bulletin (No more then 20 characters)"
PRINT "Subject: "
NUMCHR = 1
WHILE (KEY <> CHR(13) & (LEN(HOLD) < 20)) DO
GOSUB GETAKEY
PRINT KEY
HOLD = HOLD+KEY
ENDWHILE
FPUT 2,HOLD
GOSUB BORDER 'Display the screen border
ANSIPOS 1,2
GOSUB GETAKEY
WHILE (key <> CHR(27)) DO 'While the user or sysop dosn't enter an ESC DO
GOSUB GETXY
IF (key = CHR(13)) THEN 'If key is a CR do this
GOSUB GETXY 'GET the X/Y possion of the cursor
ANSIPOS 1,y+1 'Move cursor down one line
GOSUB GETAKEY 'Get a new key
FPUTLN 1,""
ELSEIF ((key = CHR(8)) & (x = "1") & (Y <> 2)) THEN
GOSUB GETXY
ANSIPOS 78,y-1
FSEEK 1,-1,SEEK_CUR
FPUT 1," "
FSEEK 1,-1,SEEK_CUR
ELSEIF ((key = CHR(8)) & (x <> "1")) THEN
BACKUP 1
PRINT " "
BACKUP 1
FSEEK 1,-1,SEEK_CUR
FPUT 1," "
FSEEK 1,-1,SEEK_CUR
GOSUB GETAKEY
ELSE 'ELSE PRINT key
GOSUB GETXY
IF (x = 78) THEN
ANSIPOS 1,y+1
PRINT key
FPUT 1,KEY
GOSUB GETAKEY
ENDIF
GOSUB GETXY
IF (LEN(KEY) = 1) THEN
PRINT key
FPUT 1,KEY
ENDIF
GOSUB GETAKEY 'Get a new key
ENDIF
ENDWHILE
FCLOSE 1
END
;***********************************************************************
:BORDER
CLS
DISPFILE PPEPATH()+"TEMP.!!!",0
PRINTLN "Enter your Bulletin here. Press (ESC) when you are done."
RETURN
;***********************************************************************
:GETAKEY
LET KEY = "UH"
WHILE (key = "UH") DO
key = INKEY()
ENDWHILE
RETURN
;***********************************************************************
:GETXY
LET x = GETX()
LET y = GETY()
RETURN
;***********************************************************************